application: Put shared code into a common function
authorBenjamin Otte <otte@redhat.com>
Wed, 29 Nov 2017 23:09:37 +0000 (00:09 +0100)
committerBenjamin Otte <otte@redhat.com>
Sun, 3 Dec 2017 04:46:48 +0000 (05:46 +0100)
gtk/gtkapplication.c
gtk/gtkmain.c
gtk/gtkprivate.h

index b96980fbb39201040e7e906400d03d669395807c..0954d83bae6fe59e031e915b18461f48b18b9fe7 100644 (file)
@@ -38,6 +38,7 @@
 #include "gtkbuilder.h"
 #include "gtkshortcutswindow.h"
 #include "gtkintl.h"
+#include "gtkprivate.h"
 
 /* NB: please do not add backend-specific GDK headers here.  This should
  * be abstracted via GtkApplicationImpl.
@@ -311,13 +312,7 @@ gtk_application_shutdown (GApplication *g_application)
 
   gtk_action_muxer_remove (application->priv->muxer, "app");
 
-  /* Keep this section in sync with gtk_main() */
-
-  /* Try storing all clipboard data we have */
-  _gtk_clipboard_store_all ();
-
-  /* Synchronize the recent manager singleton */
-  _gtk_recent_manager_sync ();
+  gtk_main_sync ();
 
   G_APPLICATION_CLASS (gtk_application_parent_class)->shutdown (g_application);
 }
index a80201c774c3af87bb86c573af84c3a82f073e58..c71637f1f661cbf4520690c74211963286ef03ae 100644 (file)
@@ -995,15 +995,17 @@ gtk_main (void)
   gtk_main_loop_level--;
 
   if (gtk_main_loop_level == 0)
-    {
-      /* Keep this section in sync with gtk_application_shutdown() */
+    gtk_main_sync ();
+}
 
-      /* Try storing all clipboard data we have */
-      _gtk_clipboard_store_all ();
+void
+gtk_main_sync (void)
+{
+  /* Try storing all clipboard data we have */
+  _gtk_clipboard_store_all ();
 
-      /* Synchronize the recent manager singleton */
-      _gtk_recent_manager_sync ();
-    }
+  /* Synchronize the recent manager singleton */
+  _gtk_recent_manager_sync ();
 }
 
 /**
index 01b71d15edf00708b38d57e037853503a91e22dd..71a5162aa185a088c53eb6e2548396ad470eef89 100644 (file)
@@ -63,6 +63,8 @@ gchar       * _gtk_get_lc_ctype           (void);
 
 void          _gtk_ensure_resources       (void);
 
+void          gtk_main_sync               (void);
+
 gboolean _gtk_boolean_handled_accumulator (GSignalInvocationHint *ihint,
                                            GValue                *return_accu,
                                            const GValue          *handler_return,